#pragma once

#include <iostream>
#include "Company.h"

class Programmer {
public:
	Programmer(Company* company) : company_(company) {}
	virtual void coding() = 0;

protected:
	Company* company_;
};

class ProgrammerCpp : public Programmer {
public:
	ProgrammerCpp(Company* company) : Programmer(company) {}

	void coding() {
		std::cout << "ProgrammerCpp";
		company_->working();
	}
};

class ProgrammerJava : public Programmer {
public:
	ProgrammerJava(Company* company) : Programmer(company) {}
	
	void coding() {
		std::cout << "ProgrammerJava";
		company_->working();
	}
};



